stylecontext: Copy name when setting widget path
authorBenjamin Otte <otte@redhat.com>
Sat, 21 Nov 2015 01:21:12 +0000 (02:21 +0100)
committerBenjamin Otte <otte@redhat.com>
Sat, 21 Nov 2015 01:21:12 +0000 (02:21 +0100)
Imitate what we do for the type. This way we don't lose the name on
save/restore.

https://bugzilla.gnome.org/show_bug.cgi?id=758442

gtk/gtkstylecontext.c

index 46be12c0f9e86c61b1f2c52f77efe99800faab2a..d07fe1ffdbde68c5cb3e14761095c655ebff3622 100644 (file)
@@ -1081,14 +1081,18 @@ gtk_style_context_set_path (GtkStyleContext *context,
       GtkWidgetPath *copy = gtk_widget_path_copy (path);
       gtk_css_path_node_set_widget_path (GTK_CSS_PATH_NODE (root), copy);
       if (gtk_widget_path_length (copy))
-        gtk_css_node_set_widget_type (root,
-                                      gtk_widget_path_iter_get_object_type (copy, -1));
+        {
+          gtk_css_node_set_widget_type (root,
+                                        gtk_widget_path_iter_get_object_type (copy, -1));
+          gtk_css_node_set_name (root, gtk_widget_path_iter_get_object_name (copy, -1));
+        }
       gtk_widget_path_unref (copy);
     }
   else
     {
       gtk_css_path_node_set_widget_path (GTK_CSS_PATH_NODE (root), NULL);
       gtk_css_node_set_widget_type (root, G_TYPE_NONE);
+      gtk_css_node_set_name (root, NULL);
     }
 }